【Security Hub修復手順】[KMS.5] KMSキーはパブリックに公開すべきではありません

【Security Hub修復手順】[KMS.5] KMSキーはパブリックに公開すべきではありません

AWS SecurityHub 基礎セキュリティのベストプラクティスコントロール修復手順をご紹介します。
Clock Icon2024.11.14

こんにちは!AWS事業本部の吉田です。

皆さん、お使いのAWS環境のセキュリティチェックはしていますか?

当エントリでは、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修復手順をご紹介します。

本記事の対象コントロール

[KMS.5] KMSキーはパブリックに公開すべきではありません

[KMS.5] KMS keys should not be publicly accessible

前提条件

本記事は、AWS Security Hubで「AWS基礎セキュリティのベストプラクティススタンダード」を利用されている方向けの内容となります。
AWS Security Hubの詳細についてはこちらのブログをご覧ください。

https://dev.classmethod.jp/articles/lets-learn-aws-security-hub/

https://dev.classmethod.jp/articles/aws-security-operation-with-securityhub-2021/

対象コントロールの説明

本コントロールは、AWS KMSキーがパブリックにアクセス可能か確認します。
KMSキーポリシーで外部アカウントからのアクセスが許可されている場合、
第三者がKMSキーを使用してデータを暗号化および復号化できるようになり、データが流失される可能性があります。

どのようなキーポリシーの場合に検知されるのか?

「KMSキーポリシーで外部アカウントからのアクセスが許可されている場合」=「クロスアカウントアクセスを許可している場合」に本コントロールが失敗するとも読めてしまいます。
実際、下記の記事のようにKMSキーにクロスアカウントアクセスをすることは往々にしてあると思います。
カスタマーマネージドキーで暗号化されたS3オブジェクトにクロスアカウントアクセスする方法

どのようなKMSキーポリシーを設定している場合、本コントロールで検知されるのか検証します。

結論

まず結論ですが、キーポリシーのPrincipalにIAMユーザーやIAMロールを指定している場合は本コントロールは検知されません。
Principalでワイルドカードを使用していた場合に本コントロールは失敗します。

検証(クロスアカウントアクセスの場合)

以下のキャプチャの通り、まずはキーポリシーのPrincipalに他アカウントのIAMロールを設定します。
スクリーンショット 2024-11-13 11.35.56.png
本コントロールにリンクしているAWS Configのルールを再評価しても、検証用KMSキーのコンプライアンスのステータスは準拠のままでした。
スクリーンショット 2024-11-13 11.40.05.png

検証(ワイルドカードの場合)

次にキーポリシーのPrincipalにワイルドカードを使用します。
スクリーンショット 2024-11-13 11.41.49.png
AWS Configのルールを再評価したところ、検証用KMSキーのコンプライアンスのステータスは非準拠に変わりました。
つまり、キーポリシーのPrincipalでワイルドカードを使用していた場合に本コントロールは失敗します。
スクリーンショット 2024-11-13 11.45.08.png

修復手順

  1. KMSの「カスタマー管理型のキー」のページに移動し、対象のKMSキーをクリックします。
    スクリーンショット 2024-11-14 9.50.44.png
  2. キーポリシーの「編集」をクリックします。
    スクリーンショット 2024-11-14 9.51.48.png
  3. キーポリシーでPrincipalにワイルドカードを使用しているStatementを探します。
    スクリーンショット 2024-11-13 11.41.49のコピー.png
  4. ワイルドカードの部分を他アカウントのIAMロール・もしくはIAMユーザーのARNに変更した後、「変更の保存」をクリックします。
    スクリーンショット 2024-11-13 11.35.56のコピー2.png

最後に

今回は、AWS Security HubによるAWS環境のセキュリティ状況スコアリングに該当する項目についての修正手順をご紹介しました。

コントロールを修正して、お使いのAWS環境のセキュリティをパワーアップさせましょう!

最後までお読みいただきありがとうございました!どなたかのお役に立てれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.